// pages/goods/detail/index.js
import {
  reqGoodsInfo
} from "../../../api/goods"
import {
  userBehavior
} from "../../../behaviors/userBehavior" //导入创建的behavior
import {
  reqAddCart,
  reqCartList
} from "@/api/cart"
Page({
  behaviors: [userBehavior],
  // 页面的初始数据
  data: {
    goodsInfo: {}, // 商品详情
    show: false, // 控制加入购物车和立即购买弹框的显示
    count: 1, // 商品购买数量，默认是 1
    blessing: '', // 祝福语
    buyNow: 0, //控制是加入购物车还是立即购买
    allCount: 0, //商品购买数量
  },
  //全屏预览图片
  previewImage() {
    wx.previewImage({
      urls: this.data.goodsInfo.detailList
    })
  },
  // 加入购物车
  handleAddcart() {
    this.setData({
      show: true,
      buyNow: 0
    })
  },

  // 立即购买
  handeGotoBuy() {
    this.setData({
      show: true,
      buyNow: 1
    })
  },

  // 点击关闭弹框时触发的回调
  onClose() {
    this.setData({
      show: false
    })
  },

  // 监听是否更改了购买数量
  onChangeGoodsCount(event) {
    this.setData({
      count: Number(event.detail)
    })
  },
  //获取商品详情信息
  async getGoodsInfo() {
    const {
      data: goodsInfo
    } = await reqGoodsInfo(this.goodsId)
    this.setData({
      goodsInfo
    })
  },
  //弹框的按钮的确定事件处理函数
  async handlerSubmit() {
    //解构相关数据
    const {
      token,
      count,
      blessing,
      buyNow
    } = this.data
    //获取商品id
    const goodsId = this.goodsId
    //判断用户是否进行了登录，如果没有登录，则需要跳转到登录页面 
    if (!token) {
      wx.navigateTo({
        url: "/pages/login/login",
      })
      return
    }
    //区分处理加入购物车以及立即购买
    if (buyNow === 0) {
      const res = await reqAddCart({
        goodsId,
        count,
        blessing
      })
      if (res.code === 200) {
        wx.toast({
          title: "加入购物车成功！"
        })
        this.getCartCount()
        this.setData({
          show: false
        })
      }
    } else {
      wx.navigateTo({
        url: `/modules/orderPayModule/pages/order/detail/detail?goodsId=${goodsId}&blessing=${blessing}`,
      })
    }
  },
  //计算购物车商品数量
  async getCartCount() {
    //判断用户是否进行登录
    if (!this.data.token) return
    const res = await reqCartList()
    //判断购物车中是否存在商品
    if (res.data.length !== 0) {
      //累加得出商品购买数量
      let allCount = 0
      res.data.forEach(item => {
        allCount += item.count
      })
      this.setData({
        //info属性的属性值要求是字符串类型
        allCount: (allCount > 99 ? "99+" : allCount) + ""
      })
    }
  },
  onLoad(options) {
    //接收商品传递的id
    this.goodsId = options.goodsId
    this.getGoodsInfo()
    this.getCartCount()
  },
  //实现转发功能
  onShareAppMessage() {
    return {
      title: "所有的怦然心动都是你",
      path: "/pages/index/index",
      imgUrl: "../../../../../assets/images/love.jpg"
    }
  },
  //能够把小程序分享到朋友圈
  onShareTimeline() {

  }
})